package com.ruicar.afs.cloud.basic.costexemptbill.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author: Lee
 * @date 2020-05-30 09:21:16
 * @description 每期罚息豁免明细
 */
@Data
public class PenaltyExemptDetails {

	/** 单笔罚息豁免信息表id */
	@ApiModelProperty("单笔罚息豁免信息表id")
	@JsonSerialize(using = ToStringSerializer.class)
	@JSONField(serializeUsing = com.alibaba.fastjson.serializer.ToStringSerializer.class)
	private Long penaltyId;
	/** 合同号 */
	@ApiModelProperty("合同号")
	private String contractNo;
	/** 案件号 */
	@ApiModelProperty("案件号")
	private String caseNo;
	/** 期数 */
	@ApiModelProperty("期数")
	private Integer termNo;
	/** 还款日 */
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@JSONField(format="yyyy-MM-dd")
	@ApiModelProperty("还款日")
	private Date repaymentDate;
	/** 逾期天数 */
	@ApiModelProperty("逾期天数")
	private Integer overdueDays;
	/** 罚息总计 */
	@ApiModelProperty("罚息总计")
	private BigDecimal totalPenalty;
	/** 罚息金额 */
	@ApiModelProperty("罚息金额")
	private BigDecimal penaltyAmt;
	/** 减免天数 */
	@ApiModelProperty("减免天数")
	private Integer eliefDays;
	/** 减免比例 */
	@ApiModelProperty("减免比例")
	private Double reductionRatio;
	/** 豁免额 */
	@ApiModelProperty("豁免额")
	private BigDecimal exemptionAmt;
	/** 已收金额（核销额） */
	@ApiModelProperty("已收金额（核销额）")
	private BigDecimal receivedAmt;
	/** 累计已豁免金额 */
	@ApiModelProperty("累计已豁免金额")
	private BigDecimal exemptedAmt;
	/** 净逾期额 */
	@ApiModelProperty("净逾期额")
	private BigDecimal overdueAmt ;
	/** 费用金额 */
	@ApiModelProperty("费用金额")
	private BigDecimal costAmt;
	/** 到期金额 */
	@ApiModelProperty("到期金额")
	private BigDecimal dueAmt;
	/** 状态 枚举值：有效、无效 */
	@ApiModelProperty("状态 枚举值：有效、无效")
	private String status;
	/** 完成日期 */
	@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
	@DateTimeFormat(pattern = "yyyy-MM-dd")
	@JSONField(format="yyyy-MM-dd")
	@ApiModelProperty("完成日期")
	private Date completionDate;
	/** 客户姓名 */
	@ApiModelProperty("客户姓名")
	private String custName;
}
